package com.panfeng.xcloud.boss.provider.assets.web.vo.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

@Data
@ApiModel(value = "获取已开启量化的交易对详情响应")
public class OpenQuantBotDetailRespVO {

    @ApiModelProperty("用户账户ID")
    private String userId;

    @ApiModelProperty("合约交易对")
    private String contractCode;

    @ApiModelProperty("策略类型 0:循环 1:单次")
    private Integer strategyType;

    @ApiModelProperty("交易所类型(0.okex 1.huobi 2.binance")
    private Integer exchangeType;

    @ApiModelProperty("交易对目的币种")
    private String destinationCoin;

    @ApiModelProperty("交易对源币种")
    private String sourceCoin;

    @ApiModelProperty("持仓数量")
    private BigDecimal amount;

    @ApiModelProperty("持仓均价")
    private BigDecimal positionPrice;

    @ApiModelProperty("持仓金额")
    private BigDecimal makeOrderNum;

    @ApiModelProperty("当前价格")
    private BigDecimal price;

    @ApiModelProperty("补仓次数")
    private Integer coverTime;

    @ApiModelProperty("涨跌")
    private BigDecimal rate;

    //策略相关
    @ApiModelProperty("首单额度")
    private BigDecimal initOrderPosition;

    @ApiModelProperty("止盈比例")
    private BigDecimal stopProfitRatio;

    @ApiModelProperty("补仓跌幅")
    private BigDecimal coverRate;

    @ApiModelProperty("补仓价格")
    private BigDecimal coverPirce;

    @ApiModelProperty("倍投上限")
    private Integer doubleLimit;

    @ApiModelProperty("盈利回调")
    private BigDecimal stopProfitBackRatio;

    @ApiModelProperty("补仓回调")
    private BigDecimal addPositionBackRatio;

    @ApiModelProperty("对冲线前止损率")
    private BigDecimal stopLossesRatio;

    @ApiModelProperty("对冲线后止损率")
    private BigDecimal stopLossProfit;

    @ApiModelProperty("止盈价格")
    private BigDecimal stopProfitPrice;

    @ApiModelProperty("补仓倍数模式(0.固定倍数 1.动态倍数)")
    private String addPositionTimesModelSwitch;

    @ApiModelProperty("补仓动态倍数")
    private String addPositionDynamicTimes;

    @ApiModelProperty("补仓固定倍数")
    private String addPositionFixTimes;

    @ApiModelProperty("加仓倍数模式(0.固定倍数 1.动态倍数)")
    private String antiAddPositionTimesModelSwitch;

    @ApiModelProperty("加仓动态倍数")
    private String antiAddPositionDynamicTimes;

    @ApiModelProperty("加仓固定倍数")
    private String antiAddPositionFixTimes;

    @ApiModelProperty("多单设定对冲涨跌幅")
    private BigDecimal buyStopRate;

    @ApiModelProperty("空单设定对冲涨跌幅")
    private BigDecimal sellStopRate;

    @ApiModelProperty("解套风控需达到的补仓次数")
    private Integer getOffAddPositionNum;

    @ApiModelProperty("0.正常模式 1.快进快出")
    private BigDecimal getOffNeedTime;

    @ApiModelProperty("解套风控的指定解套浮动盈亏线")
    private BigDecimal getOffProfitLine;

    @ApiModelProperty("对冲线补仓次数")
    private Integer totalStopLossNumLimitAddNum;

    @ApiModelProperty("多空方向(buy:多单 sell:空单)")
    private String direction;

    @ApiModelProperty("杠杆倍数")
    private Integer leverRate;

    @ApiModelProperty("状态 0运行 1关闭")
    private String status;

    @ApiModelProperty("是否锁仓 true:锁仓 false:未锁仓")
    private boolean lock;

    @ApiModelProperty("当前对冲仓数量")
    private BigDecimal offSetAmount;

    @ApiModelProperty("逆向加仓次数")
    private Integer antiCoverTime;

    @ApiModelProperty("逆向止盈比例")
    private BigDecimal antiStopProfitRatio;

    @ApiModelProperty("逆向加仓涨幅")
    private BigDecimal antiCoverRate;

    @ApiModelProperty("逆向加仓次数上限")
    private Integer antiDoubleLimit;
}
